package com.example.mystore.service;

import com.example.mystore.model.CartItem;
import com.example.mystore.model.Product;
import com.example.mystore.model.User;
import com.example.mystore.repository.CartRepository;
import com.example.mystore.repository.ProductRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class CartService {

    @Autowired
    private CartRepository cartRepository;

    @Autowired
    private ProductRepository productRepository;

    // 添加商品到购物车
    public void addToCart(Long userId, Long productId, int quantity) {
        Product product = productRepository.findById(productId).orElse(null);
        if (product != null) {
            CartItem cartItem = cartRepository.findByUserIdAndProductId(userId, productId);
            if (cartItem != null) {
                // 如果购物车中已存在该商品，增加数量
                cartItem.setQuantity(cartItem.getQuantity() + quantity);
                cartRepository.save(cartItem);
            } else {
                // 如果购物车中不存在该商品，创建新的购物车项
                cartItem = new CartItem();
                cartItem.setUserId(userId);
                cartItem.setProductId(productId);
                cartItem.setQuantity(quantity);
                cartRepository.save(cartItem);
            }
        }
    }

    // 获取购物车商品列表
    public List<CartItem> getCartItems(Long userId) {
        return cartRepository.findByUserId(userId);
    }

    // 更新购物车商品数量
    public void updateCartItem(Long itemId, int quantity) {
        CartItem cartItem = cartRepository.findById(itemId).orElse(null);
        if (cartItem != null) {
            cartItem.setQuantity(quantity);
            cartRepository.save(cartItem);
        }
    }

    // 删除购物车商品
    public void deleteCartItem(Long itemId) {
        cartRepository.deleteById(itemId);
    }

    // 结算购物车，生成订单
    public void checkout(Long userId) {
        List<CartItem> cartItems = cartRepository.findByUserId(userId);
        if (cartItems != null && !cartItems.isEmpty()) {
            // 这里可以添加生成订单的逻辑
            cartRepository.deleteAll(cartItems);
        }
    }}